題目:
Given an integer x, return true if x is a palindrome, and false otherwise.
給定一個整數x,true如果x是,則返回回文,false否則。
解題思路
轉字串法(簡單直觀)
把整數轉成字串,然後用雙指標檢查是否左右對稱。
缺點:用了額外字串空間。
數學反轉法(最佳做法)
不轉字串,直接反轉數字。
但不用反轉整個數字,只需要反轉「一半」,避免溢位。
步驟:
如果 x < 0 或 (末位數是 0 且 x 不是 0),直接回 false。
用一個變數 rev 保存反轉後的一半數字。
當 x > rev 時,不斷取出最後一位數字加入到 rev。
最後檢查:x == rev (偶數位) 或 x == rev/10 (奇數位)。